It is known to use a crankshaft sensor outputting crank pulses to determine a crank angle of an internal combustion engine crankshaft for providing engine control timing information as part of controlling an engine combustion cycle. Such timing information is, for example, useful to control the timing of dispensing fuel by a fuel injector, or control the timing of a spark ignition device. It is desirable to know the stopped engine crank angle after an engine is stopped to facilitate restarting the engine. If the stopped engine crank angle is known prior to restarting the engine, engine cranking time and engine emissions may be reduced because the engine does not need to be cranked to learn the crank angle prior to starting the engine. Accurate estimation of a stopped engine crank angle should include determining a bounce back angle as part of the estimate. In general, bounce-back angle is determined by counting crank sensor pulses following a determination that an engine reversal has occurred. Crank angle and crank speed of a running engine are determined using various types of crankshaft sensors including variable reluctance (VR) type sensors, Hall effect type sensors, and inductive type sensors. However, while such sensors are an economical choice for determining crank angle and crank speed, they do not indicate the direction of crankshaft rotation, as is desired if engine bounce back occurs as the engine is being stopped. Engine bounce back occurs when the contents of an engine combustion chamber is compressed just as the crank stops rotating in the forward direction. The compressed contents may cause the crank to then rotate in a reverse direction that is opposite the rotation direction just prior to the crank initially stopping.
U.S. Pat. No. 7,360,406 to McDaniel et al. suggests a method for detecting engine reversal based on a calculated ratio that includes three time intervals between crank signal pulses being greater than a threshold. However, McDaniel's comparison to a single threshold is not able to detect engine reversal for all possible engine stopping conditions. In particular, McDaniel will not detect a direction reversal that results in a single crank signal pulse due to reverse crank rotation, and may double that error by incorrectly interpret that pulse as being due to forward crank rotation. U.S. Pat. No. 7,142,973 to Ando suggests a method that controls the timing that stopping of engine is initiated so that the engine coasts to a stop in more predictable manner. However, Ando uses a predetermined coast-down model that relies on the engine being properly warmed up and operating at nominal operating conditions to coast-down to a stop in a predictable manner. If the engine is not warmed up, or not operating at nominal conditions, Ando does not attempt to determine a stopped engine crank angle and is silent with regard to estimating a bounce back angle. U.S. Pat. No. 7,011,063 to Condemine et al. suggests another method that delivers fuel to at least one cylinder while the engine is coasting to a stop to more accurately control the coast-down process. However, such a method may increase fuel consumption and increase engine emissions due to incomplete fuel combustion. Like Ando, Condemine also relies on a predetermined coast-down model to predict the engine stopped crank angle and does not consider the effect of engine bounce back. U.S. Pat. No. 6,499,342 to Gonzales monitors the amplitude and period of a variable reluctance sensor signal to estimate the stopped engine crank angle. However, analyzing such a signal in the manner described adds cost and complexity to the signal processing electronics. Also, like Ando and Condemine, Gonzales does not address the effect of engine bounce back.